///////////////////////////////
// Analex.g: Analizador lexico
///////////////////////////////
lexer grammar AnalexGDL;

options
 {
 	k=2;
 	backtrack = true;
 }

// Nueva linea lo elimina directamente
BLANCO
	: (' ' | '\t' | '\n' | '\r\n')
	{ $channel=HIDDEN; }
	;

COMENTARIO_LINEA
	: '//' ~('\n' |'\r')* '\r'? '\n' {$channel=HIDDEN;}
	;

DOSPUNTOS
	: ':'
	;

LLAVE_ABRIR
	: '{'
	; 
	
LLAVE_CERRAR
	: '}'
	; 

GRAPH
	: 'graph'
	;
	
NODO
	: 'node'
	;
	
PARAM_TITLE
	: 'title'
	;
	
PARAM_LABEL
	: 'label'
	;
	
PARAM_BORDDESTYLE
	: 'borderstyle'
	;

OPTION_BORDERSTYLE
	: 'dotted'
	| 'solid'
	| 'dashed'
	;

EDGE
	: 'edge'
	;

PARAM_SOURCE
	: 'source'
	;

PARAM_TARGET
	: 'target'
	;
	
PARAM_ARROWSTYLE
	: 'arrowstyle'
	;
	
OPTION_ARROWSTYLE
	: 'none'
	| 'solid'
	| 'line'
	;
	
ID
	: '"' (~'"')* '"'
	;
